package ar.edu.utn.frba.disenio.aterrizar.aerolineas;

import java.util.ArrayList;

public class VueloConEscalas extends Vuelo {

	
	private int primerVuelo = 0;
	private boolean superoferta = false;

	
	public void agregarVuelo(Vuelo vuelo)	{
		this.vuelos.add(vuelo);		
		this.fechaLlegada = vuelo.fechaLlegada;		
		this.horaLlegada = vuelo.horaLlegada;
		this.destino = vuelo.destino;
		this.valor = 0;
        if (this.primerVuelo == 0)	{
        	this.fechaSalida = vuelo.fechaSalida;
        	this.horaSalida = vuelo.horaSalida;
        	this.origen = vuelo.origen;        	
        	this.setEstado(vuelo.getEstado());
        	this.setCodigo(vuelo.getCodigo());
        	this.aerolinea = vuelo.getAerolinea();        	
        }
        String fecha1 = (this.fechaSalida.convertirAString()+" "+this.horaSalida);
        String fecha2 = (this.fechaLlegada.convertirAString()+" "+this.horaLlegada);
        this.setDuracion(fecha1, fecha2);
        if(this.primerVuelo > 0){
        	this.codigo = this.codigo + "&" + vuelo.getCodigo();	
        }
        
        this.primerVuelo = this.primerVuelo + 1;
	}
	
	@Override
	public ArrayList<Vuelo> getVuelos()	{
		return this.vuelos;
	}
	
	@Override
	public void aplicarRecargo(double recargoAerolinea, int recargoUsuario){
		for(Vuelo unVuelo : this.getVuelos()){
			 unVuelo.aplicarRecargo(recargoAerolinea, recargoUsuario);
			this.valor = this.valor + unVuelo.valor;
		}
	}
	
	@Override
	public boolean esSuperOferta(Vuelo unVuelo){
		for(Vuelo unVueloOferta : this.getVuelos()){
			this.superoferta = this.superoferta || unVueloOferta.esSuperOferta(unVueloOferta);
		}
		return this.superoferta;
	}
	
	@Override
	public boolean esVueloBuscado(String codigoBuscado){
		for(Vuelo unVuelo : this.getVuelos()){
			String[] vuelo = unVuelo.codigo.split("-");
			if(vuelo[0].equals(codigoBuscado)){
				return true;
			}
		}
		return false;
	}
}
